#ifndef GPU_POISSON_STATE_H
#define GPU_POISSON_STATE_H

namespace poisson
{
	class GPUPoissonState
	{
	public:
		GPUPoissonState();
		virtual ~GPUPoissonState();

		double* getValue() { return value_; }
		const double* getValue() const { return value_; }

		int getId() const { return id_; }
		int getLevel() const { return level_; }
		bool isTreeNode() const { return isTreeNode_; }

		void setTreeNode(bool value) { isTreeNode_ = value; }
		void increaseLevel() { ++level_; }

	protected:
		double value_[7];

		int id_;
		int level_;
		bool isTreeNode_;

		friend class PoissonState;
	};
}

#endif